home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / VObjectTView.h < prev    next >
C/C++ Source or Header  |  1992-08-26  |  3KB  |  99 lines

  1. #ifndef VObjectTView_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define VObjectTView_First
  7.  
  8. #include "TextView.h"
  9. #include "TextCmd.h"
  10. #include "CompVObject.h"
  11.  
  12. class VObjectText;
  13.  
  14. //---- VObjectTextView --------------------------------------------------------
  15.  
  16. class VObjectTextView: public TextView {
  17. public:
  18.     MetaDef(VObjectTextView);
  19.  
  20.     VObjectTextView(
  21.     EvtHandler *eh, Rectangle r, VObjectText *t, 
  22.     bool wrap= TRUE,
  23.     TextViewFlags= eTextViewDefault, 
  24.     Point border= gBorder, 
  25.     TViewAlign m= eTViewLeft,
  26.     int id= cIdNone
  27.     );  
  28.     ~VObjectTextView();
  29.  
  30.     //---- overriden to update VObjects 
  31.     void SetOrigin(Point);
  32.     
  33.     void Control(int id, int part, void *val);
  34.     Text *SetText(Text *newText, bool scroll= cRevealTop);
  35.  
  36.     //---- extended for pasting VObjects
  37.     Command *PasteData(Data *data);
  38.     bool CanPaste(Data *data);
  39.     void PasteVObject(VObject *vop);
  40.     void PasteVisualMark(VisualMark *vmp);
  41.     
  42.     //---- distribute input events to embedded graphic objects
  43.     Command *DispatchEvents(Point lp, Token &t, Clipper*);
  44.     VisualMark *IsInputForVisualMark(Point p);
  45.     
  46.     GrCursor GetCursor(Point);    
  47.     IStream& ReadFrom(IStream&);
  48. };
  49.  
  50. //---- PasteVObjectCommand ----------------------------------------------------
  51.  
  52. class PasteVObjectCommand: public TextCommand {
  53. protected:
  54.     VObjectTextView *vtv;
  55.     VisualMark *vmp;
  56.     VObjectText *vt;
  57.     int newStart, newEnd;   
  58. public: 
  59.     MetaDef(PasteVObjectCommand);      
  60.     PasteVObjectCommand(VObjectTextView*, VObject*, int cmdNo= cPASTE, char *cmdName= 0);
  61.     PasteVObjectCommand(VObjectTextView*, VisualMark*, int cmdNo= cPASTE, char *cmdName= 0);
  62.     ~PasteVObjectCommand();
  63.     void DoIt();
  64.     void UndoIt();
  65.     void RedoIt();
  66. };
  67.  
  68. //---- StretchWrapper ---------------------------------------------------------
  69. //     a VObject installed in a StretchWrapper and inserted in a 
  70. //     VObjectText can be resized interactively
  71.  
  72. class StretchWrapper: public CompositeVObject {
  73. protected:
  74.     Point interiorOffset, extentDiff, border;
  75.     VObject *interior;
  76. public:
  77.     MetaDef(StretchWrapper);
  78.     
  79.     StretchWrapper(VObject *inner, Point border, int= cIdNone);
  80.     VObject *GetInterior()
  81.     { return interior; }
  82.     Point GetInteriorOffset()
  83.     { return interiorOffset; }
  84.     void SetOrigin(Point at);
  85.     void SetExtent(Point e);
  86.     Metric GetMinSize();
  87.     Command *DoLeftButtonDownCommand(Point, Token, int);
  88.     Command *DoKeyCommand(int ch, Token t);
  89.     void Control(int id, int part, void *val);
  90.     void SendDown(int id, int part, void *val);
  91.     GrCursor GetCursor(Point);
  92.     OStream& PrintOn(OStream&);
  93.     IStream& ReadFrom(IStream&);
  94.     void Draw(Rectangle);
  95.     bool KbdFocus(bool in);
  96. };
  97.  
  98. #endif
  99.